/**
 * 属性值出参
 */
interface AttrInfoValueVO {
  id: number //主键id
  attrInfoId: number //属性id
  attrInfoValue: string //属性值
  attrInfoName: string //属性值名称
  defaultFlag: string //是否为默认值
}
/**
 * 元素属性
 */
interface ElementAttrInfoVO {
  id: number //主键id
  elementId: number //元素id
  attrCode: string //属性编码分
  attrName: string //属性名称
  attrValueList: Array<AttrInfoValueVO> //属性值集合
}
/**
 * 元素
 */
interface ElementInfoVO {
  id: number //主键id
  elementName: string //元素名称
  elementIcon: string //元素图标
  elementLabel: string //组件标签
  elementDesc: string //元素描述
  nestingFlag: string //是否为嵌套组件
  parentId: number //父级组件id
  children?: Array<ElementInfoVO> | null //子级
  elementAttrInfoList: Array<ElementAttrInfoVO> //属性集合
}
/**
 * 组件克隆后的信息
 */
interface ElementCloneInfo extends ElementInfoVO {
  x: number //x轴坐标
  y: number //y轴坐标
  width: number //元素宽度
  height: number //元素高度
  ref?: (el: any) => void
  props: any //属性
  sizeCalculated: Promise<void> | null //计算组件宽高方法
}
export type { ElementInfoVO, ElementCloneInfo }
